Azure Resource Manager (ARM) Templates হল একটি JSON (JavaScript Object Notation)-ভিত্তিক ফাইল ফরম্যাট, যা Azure প্ল্যাটফর্মে রিসোর্স ডিপ্লয়, কনফিগারেশন এবং ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। ARM টেমপ্লেটগুলি ব্যবহার করে আপনি আপনার ইনফ্রাস্ট্রাকচারকে কনফিগারেশন কোডের মাধ্যমে ডিপ্লয় করতে পারেন, যা একটি Infrastructure-as-Code (IaC) পদ্ধতি। এর মাধ্যমে ক্লাউড রিসোর্স এবং অ্যাপ্লিকেশন ডিপ্লয়মেন্ট আরও অটোমেটেড, রিপ্রোডিউসিবল এবং স্কেলেবল হয়ে ওঠে।
ARM Templates এর মূল বৈশিষ্ট্যসমূহ
1. Infrastructure as Code (IaC)
ARM টেমপ্লেটগুলি Infrastructure as Code (IaC) বাস্তবায়ন করে, যা ডেভেলপারদের এবং অপারেশন টিমকে একসঙ্গে কাজ করতে সহায়তা করে। এটি কোডের মাধ্যমে রিসোর্স ডিপ্লয় এবং ম্যানেজ করতে সক্ষম করে, যাতে রিসোর্সগুলোকে ট্র্যাক, সংস্করণ এবং রিপ্রোডিউস করা যায়।
2. Declarative Syntax
ARM টেমপ্লেটগুলি Declarative Syntax ব্যবহার করে, যা মানে হল আপনি কেবলমাত্র যে রিসোর্সগুলি তৈরি করতে চান তা উল্লেখ করবেন এবং Azure প্ল্যাটফর্ম সেগুলোর প্রয়োজনীয় কনফিগারেশন এবং ডিপ্লয়মেন্ট পরিচালনা করবে। এর ফলে টেমপ্লেটটি আরও পরিষ্কার এবং সহজে ব্যবহারযোগ্য হয়ে ওঠে।
3. Reusability
ARM টেমপ্লেটগুলির প্রধান সুবিধা হল যে এগুলি পুনরায় ব্যবহারযোগ্য (Reusable)। একবার একটি টেমপ্লেট তৈরি করা হলে, সেটি বারবার ব্যবহার করা যায় এবং একাধিক ডিপ্লয়মেন্ট বা পরিবেশে একই কনফিগারেশন প্রয়োগ করা যায়।
4. Automation
ARM টেমপ্লেট ডিপ্লয়মেন্ট প্রক্রিয়াটি পুরোপুরি অটোমেটেড করে দেয়। আপনি ম্যানুয়ালি রিসোর্স তৈরি না করে একটি টেমপ্লেট ব্যবহার করে রিসোর্সের সেল্ফ-হোস্টিং বা অটোমেটেড ডিপ্লয়মেন্ট করতে পারেন। এটি ম্যানুয়াল ত্রুটির সম্ভাবনাও কমিয়ে দেয়।
5. Version Control
ARM টেমপ্লেটগুলি কোড ফাইল হিসেবে সংরক্ষণ করা হয়, সুতরাং এগুলিকে সাধারণ সংস্করণ নিয়ন্ত্রণ (Version Control) সিস্টেমে যেমন Git ব্যবহার করে ট্র্যাক এবং ম্যানেজ করা যায়। এটি টেমপ্লেটের পরিবর্তন এবং আপডেট ব্যবস্থাপনাকে আরও সহজ করে তোলে।
ARM Template Structure
ARM টেমপ্লেটের মূল কাঠামো নিম্নরূপ:
- $schema:
- এটি টেমপ্লেটের স্কিমা ফাইলের অবস্থান চিহ্নিত করে। স্কিমাটি টেমপ্লেটের সঠিক কাঠামো এবং বৈশিষ্ট্য নিশ্চিত করে।
- contentVersion:
- টেমপ্লেটের সংস্করণ নম্বর।
- resources:
- এখানে আপনি Azure রিসোর্সগুলোর জন্য কনফিগারেশন প্রদান করেন, যেমন ভার্চুয়াল মেশিন (VM), স্টোরেজ অ্যাকাউন্ট, নেটওয়ার্ক রিসোর্স ইত্যাদি।
- parameters:
- প্যারামিটার সেকশনে আপনি কাস্টম ইনপুট ভ্যালু নির্দিষ্ট করেন, যা টেমপ্লেটের কনফিগারেশনে ডাইনামিকালি প্রবেশ করানো যাবে।
- variables:
- ভ্যারিয়েবল সেকশনে টেমপ্লেটে ব্যবহৃত নির্দিষ্ট মানগুলি কনফিগার করা হয়, যা বিভিন্ন স্থানে পুনরায় ব্যবহার করা যেতে পারে।
- outputs:
- আউটপুট সেকশনে আপনি টেমপ্লেটের শেষের ফলাফল বা আউটপুট ডেটা নির্দিষ্ট করতে পারেন, যা ডিপ্লয়মেন্টের পরে রিটার্ন হয়।
ARM Template উদাহরণ
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2021-03-01",
"location": "[resourceGroup().location]",
"properties": {
"hardwareProfile": {
"vmSize": "Standard_DS1_v2"
},
"storageProfile": {
"osDisk": {
"createOption": "FromImage",
"managedDisk": {
"storageAccountType": "Standard_LRS"
}
}
},
"osProfile": {
"computerName": "MyVM",
"adminUsername": "azureuser",
"adminPassword": "password123!"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', 'MyNIC')]"
}
]
}
}
}
]
}
উপরে দেওয়া উদাহরণটি একটি Virtual Machine ডিপ্লয় করার জন্য একটি সরল ARM টেমপ্লেট। এই টেমপ্লেটে আমরা একটি ভার্চুয়াল মেশিনের জন্য বিভিন্ন কনফিগারেশন যেমন vmSize, osDisk, এবং networkProfile সংজ্ঞায়িত করেছি।
ARM Template Deployment
1. Azure Portal
- আপনি Azure Portal থেকে ARM টেমপ্লেট ডিপ্লয় করতে পারেন। Template Deployment অপশন ব্যবহার করে আপনি একটি কাস্টম টেমপ্লেট আপলোড করে অথবা পেস্ট করে ডিপ্লয়মেন্ট শুরু করতে পারেন।
2. Azure CLI
- আপনি Azure CLI (Command Line Interface) ব্যবহার করে ARM টেমপ্লেট ডিপ্লয় করতে পারেন। এটি একটি স্ক্রিপ্টভিত্তিক পদ্ধতি যা টেমপ্লেট ডিপ্লয়মেন্টের জন্য খুবই উপযোগী।
az deployment group create --resource-group <ResourceGroupName> --template-file <templateFileName>
3. Azure PowerShell
- PowerShell ব্যবহার করে ARM টেমপ্লেট ডিপ্লয় করতে নিচের কমান্ড ব্যবহার করা যেতে পারে:
New-AzResourceGroupDeployment -ResourceGroupName <ResourceGroupName> -TemplateFile <templateFileName>
4. Azure DevOps
- আপনি Azure DevOps ব্যবহার করে CI/CD পিপলাইন সেট আপ করতে পারেন, যেখানে ARM টেমপ্লেট ব্যবহার করে অটোমেটেড ডিপ্লয়মেন্ট প্রক্রিয়া নির্ধারণ করা যায়। DevOps টুলের মাধ্যমে টেমপ্লেটের মাধ্যমে ডিপ্লয়মেন্ট করার জন্য যথাযথ কনফিগারেশন ও পিপলাইন তৈরি করা হয়।
ARM Templates এর সুবিধা
- Consistency: একাধিক ডিপ্লয়মেন্টে একই কনফিগারেশন নিশ্চিত করে, তাই কোনও ডিপ্লয়মেন্টে ভুল বা ত্রুটি হওয়ার সম্ভাবনা কমে যায়।
- Automation: এটি ডিপ্লয়মেন্ট প্রক্রিয়াকে অটোমেটেড এবং নির্ভরযোগ্য করে তোলে।
- Version Control: ডিপ্লয়মেন্ট টেমপ্লেটগুলো সহজেই সংস্করণ নিয়ন্ত্রণে রাখা যায়, যার মাধ্যমে পরিবর্তন ট্র্যাক করা সহজ হয়।
- Scalability: একাধিক পরিবেশে (Dev, Test, Production) একই টেমপ্লেট ব্যবহার করা যায়, যা স্কেলেবল ও কার্যকরী।
Azure ARM টেমপ্লেট ব্যবহারের মাধ্যমে আপনি কম সময়ে এবং কম খরচে আপনার Azure রিসোর্সগুলো কনফিগার, ডিপ্লয়, এবং ম্যানেজ করতে পারেন।
Read more